package com.ruoyi.application.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 红娘服务申请对象 tb_matchmaker_application
 * 
 * @author ruoyi
 * @date 2025-07-31
 */
public class TbMatchmakerApplication extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 申请ID */
    private Long applicationId;

    /** 申请用户ID */
    @Excel(name = "申请用户ID")
    private Long userId;

    /** 真实姓名 */
    @Excel(name = "真实姓名")
    private String realName;

    /** 联系电话 */
    @Excel(name = "联系电话")
    private String phone;

    /** 身份证号（加密存储） */
    @Excel(name = "身份证号", readConverterExp = "加=密存储")
    private String idCardNo;

    /** 身份证正面照片URL */
    @Excel(name = "身份证正面照片URL")
    private String idCardFront;

    /** 身份证背面照片URL */
    @Excel(name = "身份证背面照片URL")
    private String idCardBack;

    /** 期望服务区域 */
    @Excel(name = "期望服务区域")
    private String serviceArea;

    /** 个人介绍 */
    @Excel(name = "个人介绍")
    private String introduction;

    /** 相关经验 */
    @Excel(name = "相关经验")
    private String experience;

    /** 申请状态：0-待审核，1-已通过，2-已拒绝 */
    @Excel(name = "申请状态：0-待审核，1-已通过，2-已拒绝")
    private Integer applicationStatus;

    /** 拒绝原因 */
    @Excel(name = "拒绝原因")
    private String rejectReason;

    /** 审核人ID */
    @Excel(name = "审核人ID")
    private Long reviewerId;

    /** 审核时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "审核时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date reviewTime;

    /** 创建时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date createdAt;

    /** 更新时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "更新时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date updatedAt;

    public void setApplicationId(Long applicationId) 
    {
        this.applicationId = applicationId;
    }

    public Long getApplicationId() 
    {
        return applicationId;
    }

    public void setUserId(Long userId) 
    {
        this.userId = userId;
    }

    public Long getUserId() 
    {
        return userId;
    }

    public void setRealName(String realName) 
    {
        this.realName = realName;
    }

    public String getRealName() 
    {
        return realName;
    }

    public void setPhone(String phone) 
    {
        this.phone = phone;
    }

    public String getPhone() 
    {
        return phone;
    }

    public void setIdCardNo(String idCardNo) 
    {
        this.idCardNo = idCardNo;
    }

    public String getIdCardNo() 
    {
        return idCardNo;
    }

    public void setIdCardFront(String idCardFront) 
    {
        this.idCardFront = idCardFront;
    }

    public String getIdCardFront() 
    {
        return idCardFront;
    }

    public void setIdCardBack(String idCardBack) 
    {
        this.idCardBack = idCardBack;
    }

    public String getIdCardBack() 
    {
        return idCardBack;
    }

    public void setServiceArea(String serviceArea) 
    {
        this.serviceArea = serviceArea;
    }

    public String getServiceArea() 
    {
        return serviceArea;
    }

    public void setIntroduction(String introduction) 
    {
        this.introduction = introduction;
    }

    public String getIntroduction() 
    {
        return introduction;
    }

    public void setExperience(String experience) 
    {
        this.experience = experience;
    }

    public String getExperience() 
    {
        return experience;
    }

    public void setApplicationStatus(Integer applicationStatus) 
    {
        this.applicationStatus = applicationStatus;
    }

    public Integer getApplicationStatus() 
    {
        return applicationStatus;
    }

    public void setRejectReason(String rejectReason) 
    {
        this.rejectReason = rejectReason;
    }

    public String getRejectReason() 
    {
        return rejectReason;
    }

    public void setReviewerId(Long reviewerId) 
    {
        this.reviewerId = reviewerId;
    }

    public Long getReviewerId() 
    {
        return reviewerId;
    }

    public void setReviewTime(Date reviewTime) 
    {
        this.reviewTime = reviewTime;
    }

    public Date getReviewTime() 
    {
        return reviewTime;
    }

    public void setCreatedAt(Date createdAt) 
    {
        this.createdAt = createdAt;
    }

    public Date getCreatedAt() 
    {
        return createdAt;
    }

    public void setUpdatedAt(Date updatedAt) 
    {
        this.updatedAt = updatedAt;
    }

    public Date getUpdatedAt() 
    {
        return updatedAt;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("applicationId", getApplicationId())
            .append("userId", getUserId())
            .append("realName", getRealName())
            .append("phone", getPhone())
            .append("idCardNo", getIdCardNo())
            .append("idCardFront", getIdCardFront())
            .append("idCardBack", getIdCardBack())
            .append("serviceArea", getServiceArea())
            .append("introduction", getIntroduction())
            .append("experience", getExperience())
            .append("applicationStatus", getApplicationStatus())
            .append("rejectReason", getRejectReason())
            .append("reviewerId", getReviewerId())
            .append("reviewTime", getReviewTime())
            .append("createdAt", getCreatedAt())
            .append("updatedAt", getUpdatedAt())
            .toString();
    }
}
